“RDS” vs. “RDB บน EC2” เลือกใช้งานตัวไหนดี? บทความนี้มีคำตอบ!
สวัสดีค่ะทุกคน แนนเองค่ะ
วันนี้จะมาแปลบทความที่เหมาะสำหรับผู้เริ่มต้นศึกษา AWS ในหัวข้อ 【初心者向け】RDSとRDB on EC2を比較してみました ต้นฉบับมาจากของคุณ 洲崎 ฝ่ายขาย AWS ประจำ Classmethod Japan โดยจะปรับเนื้อหาและภาษาบางส่วนเพื่อให้ง่ายต่อการเข้าใจนะคะ
*บทความต้นฉบับลงไว้เมื่อวันที่ 23 กรกฎาคม 2020 นะคะ
RDS คืออะไร
RDS คือบริการฐานข้อมูลเชิงสัมพันธ์ที่มีการจัดการเต็มรูปแบบบน AWS หรือภาษาอังกฤษเรียกว่า Full Managed Relational Database ทำให้เราสามารถตั้งค่า ใช้งาน และปรับขนาดฐานข้อมูลเชิงสัมพันธ์ได้ง่ายขึ้น
อ่านเพิ่มเติมเกี่ยวกับ RDS ได้ที่เว็บไซต์ของ AWS Amazon Relational Database Service (RDS) หรือบทความจากคลาสเมธอด AWS : RDS คืออะไร?
เนื่องจาก RDS เป็นบริการที่จัดการแบบเต็มรูปแบบโดย AWS เราจึงไม่จำเป็นต้องดูแลรักษาด้วยตัวเอง ซึ่งจะทำให้การจัดการง่ายมากยิ่งขึ้น
นอกจากนี้ เรายังสามารถตั้งค่าให้ใช้งาน Multi-AZ หรือการสำรองข้อมูลเอาไว้ในหลายโซนได้ ด้วยการใช้งาน Multi-AZ นี้ ทำให้เราสามารถสร้างอินสแตนซ์สำรองเอาไว้ใน Availability Zone ที่ต่างกันได้
หากเกิดความผิดปกติขึ้นภายในอินสแตนซ์ใดอินสแตนซ์หนึ่ง ก็สามารถคงความพร้อมใช้งานสูงไว้ได้ด้วยการเปลี่ยนไปใช้อินสแตนซ์สำรองอื่น ๆ ที่สร้างไว้ก่อนหน้า เรียกได้ว่ามีความพร้อมใช้งานอยู่ตลอดเวลาเลยค่ะ
ตอนนี้สามารถเลือกใช้งาน Database Engine ได้ทั้งหมด 6 ฐานข้อมูลดังต่อไปนี้ค่ะ
- Amazon Aurora
-
Amazon RDS for PostgreSQL
-
Amazon RDS for MySQL
-
Amazon RDS for MariaDB
-
Amazon RDS for Oracle
-
Amazon RDS for SQL Server
แล้วเราควรเลือกใช้งาน RDS หรือ RDB บน EC2 ดี?
เมื่อต้องเลือกฐานข้อมูลบนคลาวด์จริง ๆ บางคนอาจสับสนว่าควรจะใช้ RDS ไปเลยดี หรือใช้การกำหนดค่าบนอินสแตนซ์ EC2 ดี ในบทความนี้เลยอยากจะมาแนะนำจุดแข็งของแต่ละบริการให้ทุกคนสามารถนำไปอ้างอิงประกอบการตัดสินใจได้นะคะ
จากมุมมองของคุณ 洲崎 ผู้เขียนแล้ว คิดว่าควรใช้งาน RDS ดีกว่าค่ะ
(*เป็นเพียงความคิดเห็นของผู้เขียน หากมีความเห็นเพิ่มเติม สามารถแนะนำได้นะคะ)
หากถามว่าทำไมถึงควรใช้ RDS ภาพด้านล่างอาจช่วยให้เห็นภาพได้มากขึ้นค่ะ
ตัวอย่างการใช้งาน RDS
จุดเด่นของ RDS โดยภาพรวม
・ระยะเวลา Lead time สั้น (RDS สามารถสร้างได้ในเวลาเพียง 10 นาที)
・สามารถสำรองข้อมูลได้ง่ายด้วยฟังก์ชัน Snap shot
・RDS มีฟังก์ชันที่ชื่อว่า Storage Auto Scaling
・สามารถกำหนดค่าได้หลาย AZ (วิธีการตั้งค่า Multi-AZ)
・นอกจากนี้ยังสามารถใช้ Patch อัตโนมัติระหว่างช่วงเวลาบำรุงรักษาได้อีกด้วย
จุดเด่นของ RDB on EC2 โดยภาพรวม
・สามารถเข้าสู่ระบบ OS ได้
・RDS อาจไม่รองรับฟังก์ชันหรือคุณสมบัติบางอย่าง
・สามารถเลือกใช้อินสแตนซ์บางประเภทหรือพื้นที่จัดเก็บที่ไม่มีให้ใช้งานบน RDS ได้
Storage Auto Scaling
RDS มีฟังก์ชันที่ชื่อว่า Storage Auto Scaling คือพื้นที่เก็บข้อมูลจะขยายขนาดอัตโนมัติ
โดยจะขยายขนาดอัตโนมัติเมื่อตรงตามเงื่อนไขต่อไปนี้
・เมื่อพื้นที่ว่างใน Storage ที่สามารถใช้งานได้น้อยกว่า 10%
・พื้นที่เก็บข้อมูลไม่พอเป็นระยะเวลาต่อเนื่อง 5 นาที
・พื้นที่จัดเก็บที่เพิ่มขึ้นนั้น จะเพิ่มตั้งแต่ 5 GB ขึ้นไป หรือ 10% ของพื้นที่จัดเก็บที่มีอยู่
วิธีการตั้งค่า Multi-AZ
การตั้งค่าใช้งานได้แบบ Multi-AZ ถือเป็นข้อดีหลัก ๆ ของ RDS เลยอยากจะมาแนะนำวิธีการตั้งค่ากันค่ะ
มันสั้นและง่ายมาก พริบตาเดียวก็สามารถทำได้แล้วค่ะ!
โดยในบทความนี้ ตัวอย่างสเปคที่นำมาใช้ จะเป็นดังนี้ค่ะ Region Singapore, Engine Type MySQL, DB instance class Standard classes, db.m5.xlarge ของ RDS สำหรับ MySQL ตามรูปด้านล่าง
อย่างแรก ให้เราเลือก Engine Type เป็น MySQL
ในส่วนของ Instance Configuration ให้เลือกเป็น standard classes และ db.m5.xlarge
เลือก Availability and durability เป็นแบบ Multi-AZ DB instance
สะ เสร็จแล้วค่ะ!? เพียงเท่านี้ก็จะเป็นการสร้างอินสแตน์สำรองโดยอัตโนมัติได้แล้ว
ในส่วนของค่าบริการ เมื่อเปิดใช้งาน RDS จะมีค่าอินสแตนซ์สำรองรวมอยู่ด้วย ซึ่งเราสามารถตรวจสอบได้
การตั้งค่า Multi-AZ นี้ ถือเป็น Best Practices ไม่เพียงแต่สำหรับ AWS เท่านั้น แต่ยังรวมถึงออกแบบระบบ โดยอิงตามหลักการการออกแบบเพื่อรองรับการล้มเหลว
กล่าวคือ หากเราออกแบบระบบโดยดูจากต้นทุนเพียงอย่างเดียว หากเกิดข้อผิดพลาดใดขึ้น อาจส่งเสียเป็นวงกว้าง ดังนั้น เราจึงใช้หลักการการออกแบบเพื่อรองรับการล้มเหลว หรือที่เรียกว่า Design for failure นั่นเองค่ะ
ในกรณีนี้ก็คือการสร้างอินสแตนซ์สำรองไว้ในหลาย AZ เพื่อเพิ่มความพร้อมในการใช้งานได้ง่าย ๆ ด้วยคลิกเดียว!
นอกจากนี้ยังสามารถตั้งค่าให้สำรองข้อมูลอัตโนมัติได้ด้วยคลิกเดียวเช่นเดียวกันค่ะ
สามารถอ่านรายละเอียดเกี่ยวกับ Multi-AZ ได้ที่นี่ ทดลองใช้งาน Multi-AZ ด้วย RDS (MySQL) บน AWS
สรุป
ก็จบกันไปแล้วนะคะ สำหรับข้อเปรียบเทียบการใช้งานระหว่าง RDS และ RDB บน EC2
อาจกล่าวได้ว่า RDS มีข้อได้เปรียบในแง่ของการทำงานและความพร้อมใช้งานมากกว่าการกำหนดค่าเองบน EC2
หวังว่าบทความนี้จะสามารถชี้ให้เห็นถึงข้อดีของ RDS และเป็นประโยชน์ให้ผู้ที่กำลังตัดสินใจอยู่นะคะ
แล้วพบกันใหม่บทความหน้าค่า